数据库
SQL Server AlwaysOn 是支持高可用性/灾难恢复场景的首选 SQL Server 技术,并且User Workspace Manager10.x 服务器为支持该技术已进行优化。
SQL 镜像适用于正在向总是在线的技术转型的User Workspace Manager10.1 FR1+ 客户。
SQL 总是在线
关于配置 SQL Server AlwaysOn 可用组的指南可以在这里找到:
关于 SQL Server 高可用性和灾难恢复的白皮书可以在这里找到:
如果您已经使用多子网故障转移可用性组配置了 SQL AlwaysOn,那么您必须在数据库连接字符串中为相关侦听器配置 MultiSubnetFailover 值。这可以使用服务器配置门户或 Powershell cmdlet 来完成。
有关配置数据库连接字符串的更多信息,请参阅服务器配置门户脚本撰写指南中的设置新的服务器和数据库。
SQL 镜像
SQL 数据库镜像策略可通过在镜像 SQL 实例中保留数据库的实时副本确保获得数据恢复能力。如果出现故障转移,可以利用此待机数据库立即恢复服务。
原始服务器被称为主体,待机服务器被称为镜像。数据会在两个服务器之间自动进行同步,以便在需要时镜像完全为最新的。
如果设置符合 Microsoft 最佳实践,则 SQL 镜像受到的支持IvantiUser Workspace Manager
进行自动故障转移需要有见证服务器。在没有见证服务器的情况下,需要进行手动转换。
SQL 镜像在 SQL Server 2012 和 2014 上受支持,但是在 SQL Express Edition 上不受支持。
将 SQL 镜像与User Workspace Manager服务器一起配套使用
User Workspace Manager 服务器允许用户向数据库连接字符串中添加额外的参数。这可用于添加 Failover Partner 参数,以便在镜像配置中,User Workspace Manager 服务器可在主体出现故障或被切换时自动切换。
进行自动故障转移要求有见证服务器以及镜像对。
设置 SQL 镜像与 User Workspace Manager 涉及以下步骤:
初始安装管理 User Workspace Manager 服务器
User Workspace Manager 服务器应初始配置为指向主体数据库。用于安装数据库的服务器配置门户 (SCP) 可设置配置文件,以包含主体数据库的详细信息。
当原始主体作为镜像时,如果 SCP 在安装后运行,那么它将无法连接到数据库,因为 SCP 无法识别故障转移配置。
将出现连接错误,导致出现数据库差异。如果您正在切换数据库,则必须手动编辑 web.config 以删除故障转移合作伙伴。
要确保服务可访问镜像对的两个实例:
- 服务帐户必须使用 Windows 身份验证
- 必须使用域用户。
有关 SCP 的更多信息,请参阅 服务器配置门户帮助。
准备主体和镜像数据库
- 在托管主体数据库的服务器上运行 SQL Server Management Studio。
- 右键单击“对象管理器”中的管理服务器数据库,并选择属性。
- 在“数据库属性”对话框中,选择选项页面。
- 从“恢复模式”下拉列表中选择完全。
- 单击确定。
- 将恢复模式设置为完全后,就会备份数据库和事务日志。
- 通过完全恢复备份以及事务日志,在镜像数据库上创建镜像数据库。 确保每次恢复时均选中了“恢复数据库”对话框中的使用非复原恢复选项。
有关恢复数据库的更多信息,请参阅 SQL Server Management Studio 联机帮助或 SQL Server 文档。
数据库镜像设置
建议每个 SQL Server 服务均按域帐户运行,因为每个数据库均必须能够登录其他 SQL Server 的服务。
- 在托管主体数据库的服务器上运行 SQL Server Management Studio。
- 右键单击“对象管理器”中的数据库,并选择任务 > 镜像。
- 单击配置安全性以访问“配置数据库镜像安全性向导”。
该向导设置主体和镜像服务器的实例。
有关如何设置服务器镜像的更多信息,请参阅 SQL Server Management Studio 联机帮助或 SQL Server 文档
管理服务器设置
设置镜像对后,您需要配置管理服务器以使其能够在必要时使用故障转移合作伙伴,这通过以下 PowerShell 命令来实现:
Import-ApsInstanceModule -ProductName "Management Server" -IsDefault
$pw ="Password"| ConvertTo-SecureString -AsPlainText -force
$sc = New-Object System.Management.Automation.PSCredential ("Domain\Username",$pw)
Set-ApsServerDatabase -DatabaseConnection NameOfConnection -ServiceCredential $sc -ConnectionString "Failover Partner=NameOfFailOverServer"
如果默认 SQL 实例 (MSSQLServer) 中存在数据库,则不要在 web.config.file 中指定“Server\MSSQLServer”,因为镜像将不起作用。要使用默认 SQL 实例,仅指定服务器名称。
例如,如果您的服务器 "SVR_2k8_01" 在默认实例中已存在,则指定 "SVR_2k8_01",而不是 "SVR_2k8_01\MSSQLServer"。
当故障转移合作伙伴 Powershell 命令成功运行时,获得更新的文件为 databaseconnections.xml。
当 PoSh 命令运行时,会添加故障转移连接:
服务器配置门户将如下所示,这正是所预期的,因为不存在有关故障转移连接的配置帐户详细信息:
个性化服务器设置
设置镜像不会将服务器登录名转移至镜像中,因此必须将服务帐户登录名添加到镜像中。
- 在 SQL Server Management Studio 的“对象管理器”中,右键单击安全性 > 登录名节点,并选择新建登录名。
- 输入服务帐户登录名的详细信息,并单击确定。
仅需要添加用户,因为用户的 SID 在数据库中已设置好;当出现故障转移时,该用户将具有访问权限。
更新 web.config 文件
- 在个性化服务器上打开 web.config 文件。 此文件通常位于以下目录中:
C:\Program Files\AppSense\Environment Manager\Personalization Server\PS - 如下面示例所突出显示,添加故障转移合作伙伴。
如果默认 SQL 实例 (MSSQLServer) 中存在数据库,则不要在 web.config.file 中指定“Server\MSSQLServer”,因为镜像将不起作用。要使用默认 SQL 实例,仅指定服务器名称。
例如,如果您的服务器 "SVR_2k8_01" 在默认实例中已存在,则指定 "SVR_2k8_01",而不是 "SVR_2k8_01\MSSQLServer"。
更新 BackgroundService.exe.config
- 在个性化服务器上打开 Bin 文件夹中的 BackgroundService.exe.config 文件。此文件通常位于以下目录中:
C:\Program Files\AppSense\Environment Manager\Personalization Server\BackgroundService - 如下面示例所突出显示更新该文件: